
let s = Symbol();// 独一无二
let s2 = Symbol();
// console.log(s == s2);// false

let obj = {
    a: 1,
    [s]: function (arg) {
        console.log('-----~');
    },
    // [s] 中括号 代表变量 类型由值决定
    [Symbol()]: function (arg) {
        console.log('---');
    },
    [Symbol()]: function (arg) {
        console.log('+++');
    }
    // 独一无二，为了协作
}
// 调用[s]
// console.log(obj[s]());

// console.log(obj);
// {
//     a: 1,
//         [Symbol()]: [Function(anonymous)],
//             [Symbol()]: [Function(anonymous)],
//                 [Symbol()]: [Function(anonymous)]
// }

// 遍历
// for (let key in obj) {
//     console.log(key);
// };//a

// 遍历 symbols
// console.log(Object.getOwnPropertySymbols(obj));//[ Symbol(), Symbol(), Symbol() ]数组 

let l = Object.getOwnPropertySymbols(obj)
    .forEach(item => {
        console.log(obj[item]());
    })



